<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.29
     from oldmod.tnf on 19 December 2010 -->

<TITLE>Migration of Old Library Module Usage - Migration of Eli Version 3.8 modules</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000" BACKGROUND="gifs/bg.gif">
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0" VALIGN=BOTTOM>
<TR VALIGN=BOTTOM>
<TD WIDTH="160" VALIGN=BOTTOM>
<A HREF="http://eli-project.sourceforge.net/">
<IMG SRC="gifs/elilogo.gif" BORDER=0>
</A>&nbsp;
</TD>
<TD WIDTH="25" VALIGN=BOTTOM>
<img src="gifs/empty.gif" WIDTH=25 HEIGHT=25>
</TD>
<TD ALIGN=LEFT WIDTH="475" VALIGN=BOTTOM>
<A HREF="index.html"><IMG SRC="gifs/title.png" BORDER=0></A>
</TD>
<!-- |DELETE FOR SOURCEFORGE LOGO|
<TD>
<a href="http://sourceforge.net/projects/eli-project">
<img
  src="http://sflogo.sourceforge.net/sflogo.php?group_id=70447&amp;type=13"
  width="120" height="30"
  alt="Get Eli: Translator Construction Made Easy at SourceForge.net.
    Fast, secure and Free Open Source software downloads"/>
</a>
</TD>
|DELETE FOR SOURCEFORGE LOGO| -->
</TR>
</TABLE>

<HR size=1 noshade width=785 align=left>
<TABLE BORDER=0 CELLSPACING=2 CELLPADDING=0>
<TR>
<TD VALIGN=TOP WIDTH="160">
<h4>General Information</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="index.html">Eli: Translator Construction Made Easy</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="gindex_1.html#SEC1">Global Index</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="faq_toc.html" >Frequently Asked Questions</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="ee.html" >Typical Eli Usage Errors</a> </td></tr>
</table>

<h4>Tutorials</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="EliRefCard_toc.html">Quick Reference Card</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="novice_toc.html">Guide For new Eli Users</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="news_toc.html">Release Notes of Eli</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="nametutorial_toc.html">Tutorial on Name Analysis</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="typetutorial_toc.html">Tutorial on Type Analysis</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="ee.html" >Typical Eli Usage Errors</a> </td></tr>
</table>

<h4>Reference Manuals</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="ui_toc.html">User Interface</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="pp_toc.html">Eli products and parameters</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="lidoref_toc.html">LIDO Reference Manual</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="ee.html" >Typical Eli Usage Errors</a> </td></tr>
</table>

<h4>Libraries</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="lib_toc.html">Eli library routines</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="modlib_toc.html">Specification Module Library</a></td></tr>
</table>

<h4>Translation Tasks</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="lex_toc.html">Lexical analysis specification</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="syntax_toc.html">Syntactic Analysis Manual</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="comptrees_toc.html">Computation in Trees</a></td></tr>
</table>

<h4>Tools</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="lcl_toc.html">LIGA Control Language</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="show_toc.html">Debugging Information for LIDO</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="gorto_toc.html">Graphical ORder TOol</a> </td></tr>
</table>
<p>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="fw_toc.html">FunnelWeb User's Manual</a> </td></tr>
</table>
<p>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="ptg_toc.html">Pattern-based Text Generator</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="deftbl_toc.html">Property Definition Language</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="oil_toc.html">Operator Identification Language</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="tp_toc.html">Tree Grammar Specification Language</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="clp_toc.html">Command Line Processing</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="cola_toc.html">COLA Options Reference Manual</a> </td></tr>
</table>
<p>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="idem_toc.html">Generating Unparsing Code</a> </td></tr>
</table>
<p>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="mon_toc.html">Monitoring a Processor's Execution</a> </td></tr>
</table>

<h4>Administration</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="sysadmin_toc.html">System Administration Guide</a> </td></tr>
</table>

<HR WIDTH="100%">
<A HREF="mailto:eli-project-users@lists.sourceforge.net">
<IMG SRC="gifs/button_mail.gif" BORDER=0 ALIGN="left"></A>
<A HREF="index.html"><IMG SRC="gifs/home.gif" BORDER=0 ALIGN="right"></A>

</TD>
<TD VALIGN=TOP WIDTH="25"><img src="gifs/empty.gif" WIDTH=25 HEIGHT=25></TD>

<TD VALIGN=TOP WIDTH="600">
<H1>Migration of Old Library Module Usage</H1>
<P>
<IMG SRC="gifs/empty.gif" WIDTH=25 HEIGHT=25 ALT=""><A HREF="oldmod_2.html"><IMG SRC="gifs/next.gif" ALT="Next Chapter" BORDER="0"></A>
<IMG SRC="gifs/empty.gif" WIDTH=25 HEIGHT=25 ALT=""><A HREF="oldmod_toc.html"><IMG SRC="gifs/up.gif" ALT="Table of Contents" BORDER="0"></A>
<IMG SRC="gifs/empty.gif" WIDTH=25 HEIGHT=25 ALT="">
<HR size=1 noshade width=600 align=left>
<H1><A NAME="SEC1" HREF="oldmod_toc.html#SEC1">Migration of Eli Version 3.8 modules</A></H1>
<P>
This section gives a quick reference to modifications that have been made
in library modules of Eli version 3.8.
Users who are still using modules of Eli version 3.6 first see
 <A HREF="oldmod_2.html#SEC2">Migration of Eli Version 3.6 modules</A>.
<A NAME="IDX1"></A>
<P>
In all library modules that provide LIDO specifications the symbol roles
are now specified to be <CODE>CLASS SYMBOL</CODE>s.
This classification avoids accidental name coincidences between
grammar symbols and roles provided by modules.
<P>
As a consequence such a symbol
may not occur as a name of a tree grammar symbol. It rather has to be
inherited by a tree grammar symbol:
<PRE>
  RULE: Program ::= Source END;
  SYMBOL Program INHERITS RootScope END;
</PRE>
Constructs like
<PRE>
  RULE: RootScope ::= Source END;
</PRE>
will cause error messages. Hence, the grammar symbols have to be renamed
consistently in such cases.
<P>
We assume that some names like <CODE>IdDef</CODE> or <CODE>IdUse</CODE> have been
used in this now illegal way. In order to simplify migration those
module roles are now renamed <CODE>IdDefScope</CODE> and <CODE>IdUseEnv</CODE>.
Hence, specifications which use <CODE>IdDef</CODE> or <CODE>IdUse</CODE> as
grammar symbols may continue to do so. Only
<PRE>
  SYMBOL IdDef INHERITS IdDefScope END;
  SYMBOL IdUse INHERITS IdUseEnv END;
</PRE>
is to be added.
<P>
The following table contains a list symbol roles that are provided by modules
of Eli version 3.8 and have been changed in the current version.
All these adaptions refer to modules of the <CODE>Name</CODE> library.
<P>
The following library modules have been modified:
<A NAME="IDX2"></A>
<A NAME="IDX3"></A>
<A NAME="IDX4"></A>
<A NAME="IDX5"></A>
<A NAME="IDX6"></A>
<A NAME="IDX7"></A>
<A NAME="IDX8"></A>
<A NAME="IDX9"></A>
<A NAME="IDX10"></A>
<P>
<DL COMPACT>
<DT><CODE><CODE>BitSet</CODE></CODE>
<DD>Use <CODE>$/Adt/BitSet.fw</CODE> instead of instantiation.
(see  <A HREF="adt_3.html#SEC3">Bit Sets of Arbitrary Length of Abstract data types to be used in specifications</A>)
<P>
<DT><CODE><CODE>DynSpace</CODE></CODE>
<DD>Use <CODE>$/Adt/DynSpace.fw</CODE> instead of instantiation.
(see  <A HREF="adt_8.html#SEC8">Dynamic Storage Allocation of Abstract data types to be used in specifications</A>)
<P>
<DT><CODE><CODE>LeafPtg</CODE></CODE>
<DD>Use <CODE>$/Output/LeafPtg.fw</CODE> instead of instantiation.
(see  <A HREF="output_1.html#SEC1">PTG Output for Leaf Nodes of Tasks related to generating output</A>)
<P>
<DT><CODE><CODE>Indent</CODE></CODE>
<DD>Use <CODE>$/Output/Indent.fw</CODE> instead of instantiation.
(see  <A HREF="output_3.html#SEC3">Indentation of Tasks related to generating output</A>)
<P>
<DT><CODE><CODE>List</CODE></CODE>
<DD>The module uses <CODE>obstack</CODE> directly instead of using
module <CODE>DynSpace</CODE>.
<P>
<DT><CODE><CODE>OutStr</CODE></CODE>
<DD>Use <CODE>$/Output/OutStr.fw</CODE> instead of instantiation.
(see  <A HREF="output_4.html#SEC4">Output String Conversion of Tasks related to generating output</A>)
<P>
<DT><CODE>Name Analysis</CODE>
<DD>There are minor modifications in all name analysis modules.
See table of entity modifications below, and
(see  <A HREF="name_2.html#SEC2">Basic Scope Rules of Name analysis according to scope rules</A>)
(see  <A HREF="name_5.html#SEC11">Scopes Being Properties of Objects of Name analysis according to scope rules</A>)
(see  <A HREF="name_6.html#SEC15">Inheritance of Scopes of Name analysis according to scope rules</A>)
<P>
<DT><CODE><CODE>PreDefId</CODE></CODE>
<DD>Instead of instantiating the module <CODE>PreDefId</CODE> once for each
predefined identifier,
all predefined identifiers are be described in one file.
Its name is supplied as <CODE>referto</CODE> parameter.
(see  <A HREF="name_3.html#SEC6">Predefined Identifiers of Name analysis according to scope rules</A>)
<P>
<DT><CODE><CODE>PropLib</CODE></CODE>
<DD>Use <CODE>$/Prop/PropLib.fw</CODE> instead of instantiation.
(see  <A HREF="prop_10.html#SEC10">Some Useful PDL Specifications of Association of properties to definitions</A>)
<P>
<DT><CODE><CODE>Type</CODE> <CODE>CType</CODE> <CODE>BuType</CODE></CODE>
<DD>These modules are still usable. But they are not maintained anymore.
It is recommended to use the module <CODE>Typing</CODE>
(See  <A HREF="type_3.html#SEC8">Typed Entities of Type Analysis Reference Manual</A>,) instead.
The functionality of <CODE>CType</CODE> and <CODE>BuType</CODE>, where the C-like
name analysis scheme is also imposed upon type analysis is not
supported by <CODE>Typing</CODE>. Modules having corresponding facilities
are not yet available.
</DL>
<P>
The following entities of library modules have been modified:
<A NAME="IDX11"></A>
<A NAME="IDX12"></A>
<A NAME="IDX13"></A>
<A NAME="IDX14"></A>
<A NAME="IDX15"></A>
<A NAME="IDX16"></A>
<A NAME="IDX17"></A>
<A NAME="IDX18"></A>
<A NAME="IDX19"></A>
<A NAME="IDX20"></A>
<A NAME="IDX21"></A>
<A NAME="IDX22"></A>
<A NAME="IDX23"></A>
<A NAME="IDX24"></A>
<P>
<DL COMPACT>
<DT><CODE><CODE>AnyScope.GotScopes</CODE></CODE>
<DD>Replaced: use <CODE>RootScope.GotScopeProp</CODE>
(see  <A HREF="name_5.html#SEC11">Scopes Being Properties of Objects of Name analysis according to scope rules</A>)
<P>
<DT><CODE><CODE>AnyScope.GotScopesDefs</CODE></CODE>
<DD>Replaced: use <CODE>RootScope.GotScopeProp</CODE>
(see  <A HREF="name_5.html#SEC11">Scopes Being Properties of Objects of Name analysis according to scope rules</A>)
<P>
<DT><CODE>IdDef</CODE>
<DD>Renamed to <CODE>IdDefScope</CODE>. (see  <A HREF="name_2.html#SEC2">Basic Scope Rules of Name analysis according to scope rules</A>)
<P>
<DT><CODE><CODE>IdDefScopeProp</CODE></CODE>
<DD>Deleted: The scope property is now associated to a key in the
context of the role <CODE>RangeScopeProp</CODE>.
(see  <A HREF="name_5.html#SEC11">Scopes Being Properties of Objects of Name analysis according to scope rules</A>)
<P>
<DT><CODE><CODE>IdGetScopeProp</CODE></CODE>
<DD>Deleted: Use the <CODE>GetScope</CODE> function explicitly if necessary.
(see  <A HREF="name_5.html#SEC11">Scopes Being Properties of Objects of Name analysis according to scope rules</A>)
<P>
<DT><CODE>IdUse</CODE>
<DD>Renamed to <CODE>IdUseEnv</CODE>. (see  <A HREF="name_2.html#SEC2">Basic Scope Rules of Name analysis according to scope rule</A>)
<P>
<DT><CODE>IdUseScope</CODE>
<DD>modified: The default scope to be used can not be changed
(see  <A HREF="name_2.html#SEC2">Basic Scope Rules of Name analysis according to scope rule</A>); use <CODE>IdUseScopeProp</CODE> if necessary
(see  <A HREF="name_5.html#SEC11">Scopes Being Properties of Objects of Name analysis according to scope rule</A>).
<P>
<DT><CODE><CODE>InheritScopeProp</CODE></CODE>
<DD>Renamed and modified: use <CODE>InheritScope</CODE>.
(see  <A HREF="name_6.html#SEC15">Inheritance of Scopes of Name analysis according to scope rule</A>)
<P>
<DT><CODE><CODE>RangeScopeProp</CODE></CODE>
<DD>Modified: A computation of <CODE>THIS.ScopeKey</CODE> for
the key to which the scope is to be associated
has to be provided, instead of <CODE>THIS.Scope</CODE>.
(see  <A HREF="name_5.html#SEC11">Scopes Being Properties of Objects of Name analysis according to scope rule</A>)
<P>
</DL>
<P>
<A NAME="IDX26"></A>
<A NAME="IDX27"></A>
<A NAME="IDX28"></A>
<A NAME="IDX29"></A>
<A NAME="IDX30"></A>
<A NAME="IDX31"></A>
<A NAME="IDX32"></A>
<A NAME="IDX33"></A>
<A NAME="IDX34"></A>
<A NAME="IDX35"></A>
<A NAME="IDX36"></A>
<A NAME="IDX37"></A>
<A NAME="IDX38"></A>
<A NAME="IDX39"></A>
<A NAME="IDX40"></A>
<A NAME="IDX41"></A>
<A NAME="IDX42"></A>
<A NAME="IDX43"></A>
<A NAME="IDX44"></A>
<A NAME="IDX45"></A>
<A NAME="IDX46"></A>
<A NAME="IDX47"></A>
<A NAME="IDX48"></A>
<A NAME="IDX49"></A>
<A NAME="IDX50"></A>
<A NAME="IDX51"></A>
<A NAME="IDX52"></A>
<A NAME="IDX53"></A>
<A NAME="IDX54"></A>
<A NAME="IDX55"></A>
<A NAME="IDX56"></A>
<A NAME="IDX25"></A>
<HR size=1 noshade width=600 align=left>
<P>
<IMG SRC="gifs/empty.gif" WIDTH=25 HEIGHT=25 ALT=""><A HREF="oldmod_2.html"><IMG SRC="gifs/next.gif" ALT="Next Chapter" BORDER="0"></A>
<IMG SRC="gifs/empty.gif" WIDTH=25 HEIGHT=25 ALT=""><A HREF="oldmod_toc.html"><IMG SRC="gifs/up.gif" ALT="Table of Contents" BORDER="0"></A>
<IMG SRC="gifs/empty.gif" WIDTH=25 HEIGHT=25 ALT="">
<HR size=1 noshade width=600 align=left>
</TD>
</TR>
</TABLE>

</BODY></HTML>
